/**
 * 版权所有(C)，上海勾芒信息科技，2016，所有权利保留。
 * 
 * 项目名：	car-web
 * 文件名：	HandlerPost.java
 * 模块说明：	
 * 修改历史：
 * 2016年11月16日 - Debenson - 创建。
 */
package com.alex.wechat.mp.extension;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.stereotype.Component;

/**
 * @author Debenson
 * @since 0.1
 */
@Component(value = "ExtensionPostProcessor")
public class ExtensionPostProcessor implements BeanPostProcessor {
  private static final Logger logger = LoggerFactory.getLogger(ExtensionPostProcessor.class);

  @Override
  public Object postProcessBeforeInitialization(Object bean, String beanName)
      throws BeansException {
    return bean;
  }

  @Override
  public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
    if (bean instanceof Extension) {
      ExtensionRegistory.register((Extension) bean);
      if (logger.isInfoEnabled()) {
        logger.info("已注册消息关键字处理扩展: class={}", bean.getClass().getName());
      }
    }
    return bean;
  }

}
